package models

import (
	"time"
)

type Warehouse struct {
	ID          uint      `gorm:"primaryKey" json:"id"`                   // 主键 ID
	Name        string    `gorm:"size:255;not null" json:"name"`          // 库房名称
	Sort        *int      `gorm:"default:null" json:"sort"`               // 排序字段
	GmtCreate   time.Time `json:"gmt_create"`                             // 创建时间
	GmtModified time.Time `json:"gmt_modified"`                           // 修改时间
	Products    []Product `gorm:"foreignKey:WarehouseID" json:"products"` // 库房与物资的关系：每个库房包含多个物资
}

type WarehouseAdd struct {
	Name string `json:"name"` // 添加库房时需要的名称
	Sort *int   `json:"sort"` // 添加库房时的排序字段
}

type WarehouseUpd struct {
	ID   uint   `json:"id"`   // 修改库房时需要的 ID
	Name string `json:"name"` // 修改库房时需要的新名称
}

type WarehouseWithProduct struct {
	ID              uint      `json:"id"`                    // 库房ID
	Name            string    `json:"name"`                  // 库房名称
	Sort            *int      `json:"sort"`                  // 库房排序
	GmtCreate       time.Time `json:"gmt_create"`            // 库房创建时间
	GmtModified     time.Time `json:"gmt_modified"`          // 库房修改时间
	ProductID       uint      `json:"product_id"`            // 物资ID
	ProductName     string    `json:"product_name"`          // 物资名称
	ProductModel    string    `json:"product_model"`         // 物资型号
	ProductSpec     string    `json:"product_specification"` // 物资规格
	ProductQuantity int       `json:"product_quantity"`      // 物资数量
}
